package com.liuugoqing.creator.singleton.demo5;


/**
 * 赖加载
 * 线程安全，双重检查锁机制
 *
 * @Author : liugq
 * @Date : 2022/6/27 15:01
 * @See : 参考类
 * @Since： JDK1.8
 * @Version : 1.0
 */
public class Singleton {
    //volatile 多线程中保证 原子性  可见性  有序性
    private static volatile Singleton singleton;

    private Singleton() {
    }


    public static Singleton getInstance() {
        if (null == singleton) {
            //给关键代码加上锁
            synchronized (Singleton.class) {
                //抢到锁之后再次判断是否为空
                if (singleton == null)
                    singleton = new Singleton();
            }
        }
        return singleton;
    }

}
